package com.waitingresult.web;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/*")
public class FilterDesc implements Filter {
    /**
     * 过滤器(Filter)
     *  过滤器是什么
     *      JavaWeb的三大组件之一, Servlet,Filter,Lisener
     *      过滤器可以把对资源的请求,拦截下来,从而实现一些特殊的功能
     *      一般完成一些通用的操作,比如权限控制,统一编码处理,敏感字符处理等操作.
     */

    /**
     * 执行流程
     *  1. 程序进入 过滤器, 执行过滤器的 doFilter 方法, 在 调用执行链时 进入下一个执行链, 执行完毕之后 执行后续的方法
     *
     *  过滤器的执行顺序
     *   默认是自然排序 即按照 过滤器名称的字母顺序执行
     */


    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("当前过滤器执行, 进入下一个过滤器");
        //过滤器链
        chain.doFilter(request,response);
        System.out.println("");
    }


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}
